拉格朗日c语言实验报告,拉格朗日插值法C语言的实现(实验报告)(9页)-原创力文档...

韩山师范学院 C语言程序设计

实验名称: 实验一:拉格朗日插值法C语言的实现 日期: 2011-9-19

任课教师: 赖国明 专业: 数学与应用数学 学号: 2009111437 姓名: 郑永锋

【实验目的】

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

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

【实验内容】

(题目)作出插值点 (-2.00,0.00),(2.00,5.00),(5.00,6.00)的二次Lagrange 插值多项式

L (x),并计算L (-1.2),L (1.2)。

2 2 2

 解题思路:

1

()输入已知点的个数;

2 X

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

3 Y

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

4 lagrange

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

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

n

L (x ) y l (x ) y j 0,1,……n

n j k k j j

k 0

(xx )……(x-x )(x-x )……(x-x)

l (x) 0 k-1 k+1 n k 0,1,……,n

其中 k (x x )……(x-x )(x-x )……(x-x)

k 0 k k-1 k k+1 k n

程序流程图:

开始

输入已知点个数n

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

调用函数lagrange 函数

输出结果

1 9

第 页 共 页

韩山师范学院 C语言程序设计

 源程序:

#include

#include

float lagrange(float *x,float *y,floatxx,intn)

{

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

returnyy;

}

intmain()

{

int i;

intn;

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

printf("Inputn:");

scanf("%d",&n);

if(n> 20)

{

printf("Error!Thevalueofn must in (0,20).");getch();return 1;

}

if(n< 0)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值