全文预览

拉格朗日插值法分析报告

上传者:业精于勤 |  格式:doc  |  页数:5 |  大小:203KB

文档介绍
插值基函数立即可以写出满足插值条件的次插值多项式根据条件,容易验证上面多项式在节点处的值为,因此,它就是待求的次插值多项式。形如的插值多项式就是拉格朗日插值多项式,记为,即作为常用的特例,令,由上式即得两点插值公式,这是一个线性函数,故又名线性插值。若令,则又可得到常用的三点插值公式这是一个二次函数,故又名二次插值或抛物线插值。算法设计算法描述输入已知点的个数;分别输入已知点X的坐标;分别输入已知点Y的坐标;调用拉格朗日插值函数,求得某点对应的函数值。算法流程图分别输入已知点X的坐标和已知点Y的坐标开始=程序源代码#include<stdio.h>#include<malloc.h>floatlagrange(float*x,float*y,floatxx,intk){inti,j;floatl,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-x[j])/(x[i]-x[j]);yy=yy+y[i]*l;}returnyy;}intmain(){inti,n,k;floatx[50],y[50],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",&x[i]);}printf("\n");for(i=0;i<=n-1;i++){printf("y[%d]:",i);scanf("%f",&y[i]);}printf("\n");printf("Inputxx:");scanf("%f",&xx);yy=lagrange(x,y,xx,n);printf("x=%f,y=%f\n",xx,yy);}

收藏

分享

举报
下载此文档