拉格朗日插值法分析报告

上传人:s9****2 文档编号:488152949 上传时间:2023-03-04 格式:DOCX 页数:5 大小:66.60KB
返回 下载 相关 举报
拉格朗日插值法分析报告_第1页
第1页 / 共5页
拉格朗日插值法分析报告_第2页
第2页 / 共5页
拉格朗日插值法分析报告_第3页
第3页 / 共5页
拉格朗日插值法分析报告_第4页
第4页 / 共5页
拉格朗日插值法分析报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《拉格朗日插值法分析报告》由会员分享,可在线阅读,更多相关《拉格朗日插值法分析报告(5页珍藏版)》请在金锄头文库上搜索。

1、拉格朗日插值法分析报告一、拉格朗日插值法介绍1、插值概念简介已知f (x)在区间a,b上n +1个不同点x。/,x处的函数值Ji = f (i)(i = 0,1,n),求一个至多n次的多项式中(x) = a + a x dF a xn使其在给定点处与f 3)同值,既满足插值条件中 n (x) = f (x)=约 (i = 0,1, . . ., n)中n(x)称为插值多项式,x.(i = 0,1,.,n)称为插值节点,a,b称为插值区间。从几何上看,n次的多项式插值就是过n +1个点(x , f (x ) (i = 0,1,.,n),作i i图1多项式曲线以及近似曲线2、拉格朗日插值法原理在求

2、满足插值条件n次插值多项式p (x)之前,先考虑一个简单的插值问题:对节点x (i = 0,1,n)中任一点x (0 k n),作一 n次多项式l (x),ikk使它在该点上取值为1,而在其余点x. (i = 0,1,k -1,k +1,.,n)上取值为零,上式表明n个点x ,x ,.,x ,x01 k-1 k+1,xn都是n次多项式lk (x)的零点,故可设l (x) = A (x - x )(x - x )(x - x )(x - x )(x - x )kk 01k-1k+1n其中,Ak为待定系数。由条件lk(x= 1立即可得k(x - x )(x - x)(x - x )(x - x )

3、k 0kk-1kk +1k n士后 7 / 、(x x ) (x x)(x x) (x x )故 l ( x) = 0k-1k+1nk(x -x )(x -x)(x -x )(x -x )k 0kk-1kk +1k n由上式可以写出n +1个n次插值多项式l0(x),l(x),.,l (x)。我们称它们为在n +1个节点x ,x,,x上的n次基本插值多项式或n次插值基函数。 01n利用插值基函数立即可以写出满足插值条件的n次插值多项式y l (x) + y l (x) + + y l (x)0 01 1n n1 i = k根据条件lk (xi ) = 5,容易验证上面多项式在节点xi处的值为y

4、i (i = 0,1,n),因此,它就是待求的n次插值多项式P (x)。形如yl (x) + yl (x) + yl (x)的插值多项式就是拉格朗日插值多项式,0 01 1n n记为L (x),即L (x) = yl (x) + y l (x) + + y l (x)n1 12 2n n(x x ),(x x )(x x ),(x x )=0k-1k+1n(x -x ). (x -x )(x -x ). (x -x )k 0kk 1 kk +1k n作为常用的特例,令n = 1,由上式即得两点插值公式L (x) = y +(x-x ),这是一个线性函数,故又名线性插值。1 0 气-x00若令n

5、 = 1,则又可得到常用的三点插值公式T / 、(x - x )(x - x )(x - x )(x - x )(x - x )(x - x )L (x) = y 12 + y 02 + y 012 0 (x - x )(x - x )1 (x - x )(x - x )2 (x - x )(x - x )010210122021这是一个二次函数,故又名二次插值或抛物线插值。二、算法设计1、算法描述(1) 输入已知点的个数;(2) 分别输入已知点X的坐标;(3) 分别输入已知点Y的坐标;(4) 调用拉格朗日插值函数,求得某点对应的函数值。2、算法流程图yy3、程序源代码#include#inc

6、ludefloat lagrange(float *x,float *y,float xx,int k)int i,j;float l,yy=0.0;for(i=0;i=k-1;i+)l=1.0;for(j=0;j=k-1;j+)if(j!=i)l=l*(xx-xj)/(xi-xj);yy=yy+yi*l;return yy;int main()int i,n,k;float x50,y50,xx,yy;printf(插值次数 k:); scanf(%d,&k);printf(输入差值点个数n:);scanf(%d,&n);for(i=0;i=n-1;i+)printf(x%d:,i);scanf(%f,&xi);printf(n);for(i=0;i=n-1;i+)printf(y%d:,i);scanf(%f,&yi);printf(n);printf(Input xx:);scanf(%f,&xx);yy=lagrange(x,y,xx,n);printf(x=%f,y=%fn,xx,yy);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号