函数插值法实验报告c语言,拉格朗日插值法C语言的实现(实验报告).doc

拉格朗日插值法C语言的实现(实验报告)

实验名称:实验一:拉格朗日插值法C语言的实现日期:2011-9-19任课教师:赖国明专业:数学与应用数学学号:2009111437姓名:郑永锋【实验目的】

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

2、掌握编程语言字符处理程序的设计和调试技术。【实验内容】

(题目)作出插值点(-2.00,0.00),(2.00,5.00),(5.00,6.00)的二次Lagrange 插值多项式L2 (x),并计算L2 (-1.2), L2 (1.2)。

解题思路:

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

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

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

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

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

其中

程序流程图:

源程序:

#include

#include

float lagrange(float *x,float *y,float xx,int n)

{

int i,j;

float *a,yy=0.0;

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

return yy;

}

int main()

{

int i;

int n;

float x[20],y[20],xx,yy;

printf("Input n:");

scanf("%d",&n);

if(n>=20)

{

printf("Error!The value of n must in (0,20)."); 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++)

{

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("Input xx:");

scanf("%f",&xx);

yy=lagrange(x,y,xx,n);

printf("x=%f,y=%f\n",xx,yy);

getch();

}

运行结果:

已知当x=-2.00,2.00,5.00时f(x)=0.00,3.00,6.00,求f(1.2), f(-1.2)的值。

运行结果如下:

学习心得:

通过完成拉格朗日插值法C语言的实现这个实验,我重新复习到了C语言的语法,也深刻地体会到运用计算机对完成复杂的数值计算的方便。

【教师评语和成绩】

成绩: 指导教师: 日期:

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

1.实验目的:

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

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

2.实验要求:

已知:某些点的坐标以及点数。

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

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

3.程序流程:

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

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

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

(4)通过调用函数lagrange函数,来求

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值