拉格朗日插值法C语言的实现_第1页
拉格朗日插值法C语言的实现_第2页
拉格朗日插值法C语言的实现_第3页
全文预览已结束

下载本文档

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

文档简介

1、实验 一 拉格朗日插值法 C语言的实现1.实验目的:进一步熟悉拉格朗日插值法。掌握编程语言字符处理程序的设计和调试技术。2实验要求:已知:某些点的坐标以及点数。 输入:条件点数以及这些点的坐标 。输出:根据给定的点求出其对应的拉格朗日插值多项式的值3.程序流程:(1)输入已知点的个数;(2)分别输入已知点的X坐标;(3)分别输入已知点的丫坐标;(4)通过调用函数lagrange函数,来求某点所对应的函数值。拉格朗日插值多项式如下:nLn(xj) = " yJk(Xj)二 yj j=0,1,nk =0其中lk(X)二(XX。)(X-Xk-i)(X-Xk+1)?(X-X n)(Xk -X

2、o)(Xk-X k-1 )(x k-Xk+1)?(X k-X n)k =0,1,n程序流程图:开始J输入已知点个数n输入已知点的X坐标以及输 入已知点的Y坐标调用函数lagrange函数程序如下:#in elude <iostream>#in elude <coni o.h>#i nclude <malloe.h>float lagra nge(float *x,float *y,float xx,i nt n)/* 拉格朗日插值算法 */int i,j;float *a,yy=0.0;/*a作为临时变量,记录拉格朗日插值多项式 */a=(float *)m

3、alloc( n*sizeof(float);for(i=0;i<=n _1;i+)ai=yi;for(j=0;j<=n _1;j+)if(j!=i) ai*=(xx-xj)/(xi-xj);yy+=ai;free(a);return yy;int mai n()int i;int n;float x20,y20,xx,yy;printf("Input n:");scan f("%d",&n);if(n >=20)printf("Error!The value of n must in (0,20).");

4、getch();return 1;if(n <=0)printf("Error! The value of n must in (0,20)."); getch(); return 1;for(i=0;i<=n _1;i+)prin tf("x%d:",i);scan f("%f", &xi);prin tf("n");for(i=0;i<=n _1;i+)prin tf("y%d:",i);sca nf("%f", &yi);prin tf("n");prin tf("I nput xx:");scan f("%f", &xx);yy=lagra nge(x,y,xx, n);prin tf("x=%f,y=%fn",xx,yy);getch();举例如下:已知当 x=1 , -1,2 时 f(x)=0 , -

温馨提示

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

评论

0/150

提交评论