拉格朗日插值法C语言的实现.doc

上传人:b****2 文档编号:1416995 上传时间:2022-10-22 格式:DOC 页数:3 大小:46KB
下载 相关 举报
拉格朗日插值法C语言的实现.doc_第1页
第1页 / 共3页
拉格朗日插值法C语言的实现.doc_第2页
第2页 / 共3页
拉格朗日插值法C语言的实现.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

拉格朗日插值法C语言的实现.doc

《拉格朗日插值法C语言的实现.doc》由会员分享,可在线阅读,更多相关《拉格朗日插值法C语言的实现.doc(3页珍藏版)》请在冰豆网上搜索。

拉格朗日插值法C语言的实现.doc

实验一.拉格朗日插值法C语言的实现

1.实验目的:

进一步熟悉拉格朗日插值法。

掌握编程语言字符处理程序的设计和调试技术。

2.实验要求:

已知:

某些点的坐标以及点数。

输入:

条件点数以及这些点的坐标。

输出:

根据给定的点求出其对应的拉格朗日插值多项式的值。

3.程序流程:

(1)输入已知点的个数;

(2)分别输入已知点的X坐标;

(3)分别输入已知点的Y坐标;

(4)通过调用函数lagrange函数,来求某点所对应的函数值。

拉格朗日插值多项式如下:

其中

开始

程序流程图:

输入已知点个数n

输入已知点的X坐标以及输入已知点的Y坐标

调用函数lagrange函数

输出结果

程序如下:

#include

#include

#include

floatlagrange(float*x,float*y,floatxx,intn)/*拉格朗日插值算法*/

{

inti,j;

float*a,yy=0.0;/*a作为临时变量,记录拉格朗日插值多项式*/

a=(float*)malloc(n*sizeof(float));

for(i=0;i<=n-1;i++)

{

a[i]=y[i];

for(j=0;j<=n-1;j++)

if(j!

=i)a[i]*=(xx-x[j])/(x[i]-x[j]);

yy+=a[i];

}

free(a);

returnyy;

}

intmain()

{

inti;

intn;

floatx[20],y[20],xx,yy;

printf("Inputn:

");

scanf("%d",&n);

if(n>=20)

{

printf("Error!

Thevalueofnmustin(0,20).");getch();return1;

}

if(n<=0)

{

printf("Error!

Thevalueofnmustin(0,20).");getch();return1;

}

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);

getch();

}

举例如下:

已知当x=1,-1,2时f(x)=0,-3,4,求f(1.5)的值。

运行结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1