实验报告
学院:电子信息工程
实验课程:计算方法
学生姓名:
学号:
专业班级:通信工程17-3班级
实验四 Lagrange 插值
1 目的与要求
(1)进一步理解和掌握Lagrange 插值的数值算法。
(2)能够根据给定的函数值表求出插值多项式和函数在某一点的近似值以解决实际问题
2 实验内容
已知函数表如下,通过编制程序,试用拉格朗日插值多项式求0.5,0.7,0.85三点处的近似函数值。
3 实验原理
拉格朗日插值多项式:
4 程序设计 (1)流程图
拉格朗日插值程序流程图
∑===
n
i 0
i i
i )
x (l y y )
x x ()x x )(x x ()x x ()
x x ()x x )(x x ()x x ()x (l n i 1i i 1i i 0i n 1i 1i 0i --------=
+-+-
(2)程序代码
#include<stdio.h>
#include<math.h>
#define n 5
double lagrange(long double a[n],long double b[n],double x)
{
int k,l;
long double y1,m;
y1=0.0;
for(k=0;k<n;k++)
{
m=1.0;
for(l=0;l<n;l++)
{
if(l!=k)
{
m=m*(x-a[l])/(a[k]-a[l]);
}
}
y1=y1+m*b[k];
}
return y1;
}
void main()
{
double x,y;
long double a[n]={0.4,0.55,0.8,0.9,1};
long double b[n]={0.41075,0.57815,0.88811,1.02652,1.17520
};
printf("\n输入要求的自变量的值\n");
scanf("%lf",&x);
y=lagrange(a,b,x);
printf ("拉格朗日插值后的近似值%lf",y); }
5 实验结果与分析
0.5处的近似函数值为:
0.7处的近似函数值为:
0.85处的近似函数值为:
分析:
(1)通过完成拉格朗日插值法的编程实验,在对程序的修改中,我认为我最大的收获是我对C语言中数据类型具有了更为深刻的认识,进一步掌握了拉格朗日插值法。
(3)此次实验较好的完成了任务,巩固了课堂学习知识。